package com.cloudcross.ssp.service;

import java.util.List;
import java.util.Map;

import com.cloudcross.ssp.model.RoleAccount;
import com.cloudcross.ssp.model.Roles;
import com.cloudcross.ssp.base.service.BaseService;
import com.cloudcross.ssp.common.utils.Pager;

public interface IRolesService extends BaseService<Roles> {
    Roles isExist(String name);

    Roles findbyAccountRole(String accountId);

    void addAccRole(RoleAccount roleAccount);

    List<Long> findAllResIdByRole(String roleId);

    void addAccRole(String accountId, List<String> ids);

    List<Long> findAllResIdByRole(Long roleId);

    // 获取角色列表
    List<Roles> rolesList(Map<String, Object> paramMap, Pager pager);

    // 获取角色信息总数
    Integer countRolesByParams(Map<String, Object> paramMap);

    // 添加角色信息
    boolean insertRoles(Roles roles);

    // 修改角色信息
    boolean updateRoles(Roles roles);

    // 删除角色信息
    boolean deleteRoles(Integer id);

    // 修改角色状态
    boolean updateStatus(List<Long> idList, int status);

    // 根据角色获取对应的资源
    List<Map<String, Object>> getResourceByRoleId(Long roleId);

    // 根据角色删除对应的资源
    boolean deleteResByRoleId(Long roleId);

    // 根据角色批量插入对应的资源
    boolean addResourcesBatch(Map<String, Object> paramMap);


    void deleteAccRole(String accountId);
}